package edu.ynu.se.xiecheng.achitectureclass.digitalagriculture.entity;

import edu.ynu.se.xiecheng.achitectureclass.common.entity.BaseEntity;
import lombok.Data;

import javax.persistence.*;
import java.util.Date;

/**
 * 土壤记录实体类
 * 设计原则体现：
 * 1. 领域驱动设计(DDD) - 实体类反映具体业务领域模型
 * 2. 单一职责原则 - 类只负责土壤记录的数据结构
 * 3. 继承复用原则 - 继承BaseEntity获取通用属性
 */
@Data   // 使用Lombok简化getter/setter
@Entity // JPA注解，体现ORM映射
@Table(name = "device_soil_record")
public class DeviceSoilRecordEntity extends BaseEntity {

    /**
     * 实体属性
     * 设计原则体现：
     * 1. 封装原则 - 属性私有化，通过getter/setter访问
     * 2. 持久化映射 - 使用JPA注解进行ORM映射
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    protected Long id;

    @Column
    protected Long deviceId;

    @Column
    private String name;

    @Column
    private String value;

    @Column
    private String unit;

    @Column
    private Date time;

    // 非持久化字段，体现数据展示和存储分离原则
    private String deviceName;
    private String deviceSn;
}
